#[test]
fn int_from_str() {
    let result = i8::from_str_radix("A", 16);
    let result2 = i8::from_str_radix("a", 16);
    println!("{:?}", result);
    println!("{:?}", result2);
    assert_eq!(i8::MAX.count_zeros(), 1);

    let n = 0b100_0000i8;
    println!("{}", n.count_ones());

    let n = -4i8;

    assert_eq!(n.trailing_zeros(), 2);

    println!("see {:?}", i8::MIN);
    println!("see {:?}", u8::MIN);
    println!("see {:?}", u8::MAX);
    println!("see {:?}", i8::MIN.overflowing_sub(1));
}


#[test]
fn test_int32() {
    let num = i32::MAX;
    println!("{}", num);
    println!("{}", num.count_zeros());
}


#[test]
fn test_move() {
    // let data = vec![1, 2, 3];
    // let closure = move || println!("captured {data:?} by value");
    // println!("{:?}", data);

    fn create_fn() -> impl Fn() {
        let text = "Fn".to_owned();
        move || println!("This is a: {text}")
    }

    let fn_plain = create_fn();
    fn_plain();
}
